/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */

package br.ufu.sdg12014.thriftpluresdb.client;

import br.ufu.sdg12014.base.clientreply.ThriftServer;
import java.util.List;
import org.apache.thrift.TException;
import org.apache.thrift.protocol.TProtocol;

/**
 *
 * @author SergioPeres
 */
public class Action {

    private ThriftServer.Client client;
    
    public Action(TProtocol prot) {
        client = new ThriftServer.Client(prot);
    }
    
    public int getToken() {
        try {
            return client.opGetToken();
        } catch (TException ex) {
            System.out.println("Erro ao tentar criar uma nova entrada!");
            return -1;
        }
    }
    
    public String create(int clientToken, int key, String value) {
        try {
            return client.opCreate(clientToken, key, value);
        } catch (TException ex) {
            System.out.println("Erro ao tentar criar uma nova entrada!");
            return null;
        }
    }
    
    public String read(int clientToken, int key) {
        try {
            return client.opRead(clientToken, key);
        } catch (TException ex) {
            System.out.println("Erro ao tentar ler uma entrada!");
            return null;
        }
    }
    
    public String update(int clientToken, int key, String value) {
        try {
            return client.opUpdate(clientToken, key, value);
        } catch (TException ex) {
            System.out.println("Erro ao tentar alterar uma entrada!");
            return null;
        }
    }
    
    public String delete(int clientToken, int key) {
        try {
            return client.opDelete(clientToken, key);
        } catch (TException ex) {
            System.out.println("Erro ao tentar apabar uma entrada!");
            return null;
        }
    }
    
    public boolean begin(int clientToken) {
        try {
            return client.opBegin(clientToken);
        } catch (TException ex) {
            System.out.println("Erro ao tentar apabar uma entrada!");
            return false;
        }
    }
    
    public String end(int clientToken) {
        try {
            return client.opEnd(clientToken);
        } catch (TException ex) {
            System.out.println("Erro ao tentar apabar uma entrada!");
            return null;
        }
    }
}
